package net;

import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket;

/**
 * 服务器主类，负责监听客户端连接并为每个客户端创建独立的处理线程
 */
public class Server {


	/**
	 * 服务器构造函数
	 * 初始化服务器套接字，监听端口1234，等待并处理客户端连接请求
	 */
	public Server() {
		ServerSocket ss = null;

		try {
			// 创建服务器套接字，绑定到端口1234
			ss = new ServerSocket(1234);
			System.out.println("服务器已启动，等待客户端连接...");

			// 循环监听客户端连接请求
			while (true) {
				// 接受客户端连接请求，返回与客户端通信的套接字
				Socket tcpConn = ss.accept();
				System.out.println("客户端已连接，来自" + tcpConn.getInetAddress() + ":" + tcpConn.getPort());
				// 为每个客户端连接创建独立的处理线程
				MyThread myThread = new MyThread(tcpConn);
				myThread.start();
				System.out.println("服务器继续等待客户端连接...");
			}

		} catch (IOException e) {
			e.printStackTrace();
		}

	}

	/**
	 * 程序入口方法
	 * 创建服务器实例并启动服务器
	 */
	public static void main(String[] args) {
		new Server();
	}

}
